package com.hbzhit.modules.sys.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.hbzhit.common.entity.BaseEntity;
import com.hbzhit.common.enums.OrgTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 组织机构
 *
 * @author DING
 * @date 2019-07-11 11:09:26
 */
@TableName("sys_org")
@Getter
@Setter
public class SysOrgEntity extends BaseEntity {

	private static final long serialVersionUID = 1L;

	/**
	 * 上级ID
	 */
	@ApiModelProperty(value="上级ID")
    private Long pid;

	/**
	 * 组织编码
	 */
	@ApiModelProperty(value="组织编码")
	@NotBlank
    private String orgCode;

	/**
	 * 组织名称
	 */
	@ApiModelProperty(value="组织名称")
	@NotBlank
    private String orgName;

	/**
	 * 组织简称
	 */
	@ApiModelProperty(value="组织简称")
    private String simpleName;

	/**
	 * 组织类型
	 */
	@ApiModelProperty(value="组织类型")
	@NotNull
	private Integer orgType;

	/**
	 * 成立日期
	 */
	@ApiModelProperty(value="成立日期")
    private Date buildTime;

	/**
	 * 负责人
	 */
	@ApiModelProperty(value="负责人")
    private String mainUser;

	/**
	 * 备注
	 */
	@ApiModelProperty(value="备注")
    private String memo;

	/**
	 * 排序
	 */
	@ApiModelProperty(value="排序")
    private Integer orderNum;

	/**
	 * 组织类型名称
	 */
	@ApiModelProperty(value="组织类型名称")
	@TableField(exist=false)
	private String orgTypeName;

	public String getOrgTypeName() {
		if (this.orgType != null && OrgTypeEnum.getEnum(this.orgType) != null) {
			return OrgTypeEnum.getEnum(this.orgType).getName();
		}
		return orgTypeName;
	}


}
